package com.dxf.chepter10

/**
 *  抽象控制:
 *     1 参数是函数
 *     2 函数参数没有输入值也没有返回值
 *
 *     f1{
 *       逻辑代码
 *     }
 *
 *
 */
object T131_抽象控制 {

  def main(args: Array[String]): Unit = {
    //myRunLnThread 是抽象控制
    //  f1  是一个没有输入 和输出的函数 f1: () => unit
    myRunLnThread{
      ()=>println("干活喽!5秒完成")
        Thread.sleep(5000)
        println("干完咯")
    }

    //简写
    myRunLnThread2{
        println("干活喽!5秒完成")
        Thread.sleep(5000)
        println("干完咯")
    }



  }

  //
  def myRunLnThread(f1: ()=>Unit) ={
    new Thread{
      override def run(): Unit = {
        f1()
      }
    }.start()
  }

 // =>Unit 写法 , () 省略,调用的时候 就是代码块输入不需要 ()=>
  def myRunLnThread2(f1: =>Unit) ={
    new Thread{
      override def run(): Unit = {
        f1
      }
    }.start()
  }

}
